/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sistema;

import java.io.Serializable;
import java.util.Calendar;
import java.util.Date;
import java.util.Objects;

/**
 *
 * @author user
 */
public class Empregado implements Serializable{
    private String CPF;
    private String Nome;
    private String Sexo;
    private Calendar DataNascimento;
    private Calendar DataAdmissao;
    private Calendar DataDesligamento;
    private double Salario;

    
    public Empregado() {
    }
    
    
    public Empregado(String CPF, String Nome, String Sexo, Calendar DataNascimento, Calendar DataAdmissao, double Salario) {
        this.CPF = CPF;
        this.Nome = Nome;
        this.Sexo = Sexo;
        this.DataNascimento = DataNascimento;
        this.DataAdmissao = DataAdmissao;
        this.Salario = Salario;
        this.DataDesligamento = Calendar.getInstance();
        this.DataDesligamento.set(1111, 11, 11);
    }
    

    public String getCPF() {
        return CPF;
    }
    public void setCPF(String CPF) {
        this.CPF = CPF;
    }

    public String getNome() {
        return Nome;
    }
    public void setNome(String Nome) {
        this.Nome = Nome;
    }

    public String getSexo() {
        return Sexo;
    }
    public void setSexo(String Sexo) {
        this.Sexo = Sexo;
    }

    public Calendar getDataNascimento() {
        return DataNascimento;
    }

    public void setDataNascimento(Calendar DataNascimento) {
        this.DataNascimento = DataNascimento;
    }

    public Calendar getDataAdmissao() {
        return DataAdmissao;
    }

    public void setDataAdmissao(Calendar DataAdmissao) {
        this.DataAdmissao = DataAdmissao;
    }

    public Calendar getDataDesligamento() {
        return DataDesligamento;
    }

    public void setDataDesligamento(Calendar DataDesligamento) {
        this.DataDesligamento = DataDesligamento;
    }


    public double getSalario() {
        return Salario;
    }
    public void setSalario(double Salario) {
        this.Salario = Salario;
    }
    
    
    public long getIdade() {
        int factor = 0;
        int age;
        
        Calendar calendarioHoje = Calendar.getInstance();
        
        //calendarioNascimento.setTime(DataNascimento);
        calendarioHoje.setTime(new Date());
        
        if(calendarioHoje.get(Calendar.DAY_OF_YEAR) < DataNascimento.get(Calendar.DAY_OF_YEAR)) {
              factor = -1; 
        }
        age = calendarioHoje.get(Calendar.YEAR) - DataNascimento.get(Calendar.YEAR) + factor;
        //System.out.println("Your age is: "+age);
        
        return age;
    }

   

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Empregado other = (Empregado) obj;
        if (!Objects.equals(this.CPF, other.CPF)) {
            return false;
        }
        if (!Objects.equals(this.Nome, other.Nome)) {
            return false;
        }
        if (!Objects.equals(this.Sexo, other.Sexo)) {
            return false;
        }
        if (!Objects.equals(this.DataNascimento, other.DataNascimento)) {
            return false;
        }
        if (!Objects.equals(this.DataAdmissao, other.DataAdmissao)) {
            return false;
        }
        if (!Objects.equals(this.DataDesligamento, other.DataDesligamento)) {
            return false;
        }
        if (Double.doubleToLongBits(this.Salario) != Double.doubleToLongBits(other.Salario)) {
            return false;
        }
        return true;
    }
    
    

    
    
    
}
